Quick specifications for the busy programmer

نویسندگان

  • Nicholas Smallbone
  • Moa Johansson
  • Koen Claessen
  • Maximilian Algehed
چکیده

QuickSpec is a theory exploration system which tests a Haskell program to find equational properties of it, automatically. The equations can be used to help understand the program, or as lemmas to help prove the program correct. QuickSpec is largely automatic: the user just supplies the functions to be tested and QuickCheck data generators. Previous theory exploration systems, including earlier versions of QuickSpec itself, scaled poorly. This paper describes a new architecture for theory exploration with which we can find vastly more complex laws than before, and much faster. We demonstrate theory exploration in QuickSpec on problems both from functional programming and mathematics.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Lightning Talk: Supporting Software Sustainability with Lightweight Specifications

Lightweight specifications support software maintainability by providing a way to verify that any changes to a code base preserve certain program properties. We give two examples of lightweight specifications for numerical code: units-of-measure types which specify the physical units of numerical quantities in a program; and stencil specifications which describe the pattern of data access used ...

متن کامل

Onm-3: Embryo Transfer Performed by a Midwifein a Prospective Randomized Study

More than 15 % of couples have infertility problems. Thecauses of infertility are equally distributed among men and women. Assisted reproduction is an option which can help many of these couples. Because of ongoing research and development of the infertility treatments the pregnancy outcome after in vitro fertilization can be increased. Embryo transfer (ET) has in the Nordic countries, by tradi...

متن کامل

Checking Specifications in Java Systems using Flow Analysis

One of today’s challenges is producing reliable software in the face of an increasing number of interacting components. Our system CHET lets developers define specifications describing how a component should be used and checks these specifications in real Java systems. Unlike previous systems, CHET is able to check a wide range of complex conditions in large software systems without programmer ...

متن کامل

Recombinations of Busy Beaver Machines

Many programmers belive that Turing-based machines cannot think. We also believe in this, however it is interesting to note that the most sophisticated machines are not programmed by human beings. We have only discovered them. In this paper, using well-known Busy Beaver and Placid Platypus machines, we generate further very similar, but not exactly the same machines. We have found a recombinate...

متن کامل

The Spec# Programming System: An Overview

The Spec# programming system is a new attempt at a more cost effective way to develop and maintain high-quality software. This paper describes the goals and architecture of the Spec# programming system, consisting of the objectoriented Spec# programming language, the Spec# compiler, and the Boogie static program verifier. The language includes constructs for writing specifications that capture ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • J. Funct. Program.

دوره 27  شماره 

صفحات  -

تاریخ انتشار 2017